在我們完成功能列表的總畫面之後,
我們將要在這幾天把所有的功能盡可能地完善,
首先要做的就是電流查詢、與溫濕度查詢,
一般的狀況下其實是要使用溫濕度感測器或其他sensor來取得相關數據的數值,
但由於這是簡單的介紹linebot與資料庫的相關應用,
就不打算再額外介紹MQTT相關的了,
好話不多說那馬上來完成功能吧,
這邊設想linebot回傳溫濕度等功能,只需要簡單的數值回應即可,
所以我們這邊就不用相關的json畫面了,
def callback(request):
if request.method == 'POST':
signature = request.META['HTTP_X_LINE_SIGNATURE']
body = request.body.decode('utf-8')
try:
events = parser.parse(body, signature) # 傳入的事件
except InvalidSignatureError:
return HttpResponseForbidden()
except LineBotApiError:
return HttpResponseBadRequest()
for event in events:
if isinstance(event, MessageEvent): # 如果有normal訊息事件
if event.message.text == "功能列表":
line_bot_api.reply_message( # 回復「功能列表」按鈕樣板訊息
event.reply_token,
Featuresmodel().content()
)
elif isinstance(event, PostbackEvent): # 如果有postback訊息回傳
# 電流
# 如果回傳值為「電流」
if event.postback.data[0] == "電" and event.postback.data[1] == '流':
line_bot_api.reply_message( # 回復訊息文字
event.reply_token,
TextSendMessage(text=returnvalue().conditioning())
)
# 濕度
elif event.postback.data[0] == "濕" and event.postback.data[1] == '度':
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=returnvalue().humi())
)
# 溫度
elif event.postback.data[0] == "溫" and event.postback.data[1] == '度':
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=returnvalue().temp())
)
return HttpResponse()
else:
return HttpResponseBadRequest()
只需要在這邊加入
elif isinstance(event, PostbackEvent):
即可,由於前面有介紹到我們設計溫濕度及電流按鈕使用後是回傳postback方式,
所以這邊無需在上方一般messageback的地方進行新增修改,
然後下一篇我們在message.py的地方增加資料庫,即可完成這幾個功能,
下一篇GOGO!
今天是 曾一鳴 的 如果你還在就好了 網址如下~~~